<h1>Kai Blueprint</h1>
<p><img alt="Kaiblueprintscreenshot" src="/pages/products/kai/kai-kaiblueprintscreenshot.png"></p>
<p>Encapsulating boxes represent classes (<code>C1</code> and <code>C2</code>). Inheritance is indicated with an edge between classes. Subclasses are below their superclass. <code>C1</code> is the superclass of <code>C2</code>.</p>
<p>Inner boxes represent methods. <code>C1</code> defines five methods, <code>a, b, c, d</code> and <code>e</code>. <code>C2</code> defines one method, <code>f</code>. Each method is represented as a small box, visually defined with fives dimensions:</p>
<ul>
	<li> the height of a method is the time taken to execute it. The longer the method takes in its execution, the taller the box will be (<em>e.g.</em> Method <code>a</code>).</li>
</ul>
<ul>
	<li> the width reflects the number of times the method has been executed. A wide method (<code>f</code>) means the method has been executed many times by evaluated expression. A thin method (<code>a</code>, <code>b</code>, <code>c</code>) means the method has been executed zero or a few amount of times.</li>
</ul>
<ul>
	<li>gray intensity is the number of different caller methods that call the method evaluated the expression to profile. A dark method (<code>d</code>, <code>f</code>) has been executed many times. A light-toned method (<code>a</code>, <code>b</code>) has been executed a few times.</li>
</ul>
<ul>
	<li> a light gray border color means the method had not been executed (<code>e</code>). A cyan border indicates the evaluated methods that were in the profiled (<code>a</code>, <code>b</code>).</li>
</ul>
<ul>
	<li>the call-flow on self variable is indicated by connecting point edges. This happens if the body of <code>a</code> contains the expression <code>self d</code>, meaning that the message <code>d</code> is sent to self. The methods <code>a</code> calls <code>d</code> on <code>self</code>. The method <code>b</code> calls <code>d</code> and <code>c</code> on <code>self</code>. Note that we are focussing on the <em>call-flow</em> instead of the <em>control-flow</em>. </li>
</ul>
<h2>Contextual information:</h2>
<p><img alt="Popup" src="/pages/products/kai/kai-popup.png"></p>
<p>Placing the mouse cursor over a method displays an information popup window. This popup window shows the full name of the method (ViewRenderer&gt;&gt;installOn: in the figure on the left); number of executions and execution time and its code.</p>
<p>The contextual popup window displays essential information about its execution and gives a quick view of its code, allowing easy information analysis. The window is displayed after a short delay in order to avoid image flickering when placing the mouse over two or more methods.</p>
